Computer software systems such as word processors, page composition programs and the like are generally configured to manipulate collections of graphical objects such as bitmap images, photographic images, text, and filled shapes. It is sometimes desirable to combine these objects in ways that resemble the effects obtained in a photographic darkroom, such as dodging and burning. It is also desirable to allow the user to perform mathematical operations on the pixel values such as add, subtract, multiply, minimum and maximum. Such actions are referred to in the art as blending modes or compositing operators. Graphical objects may be collected into a group and the group rendered onto the background as if it were a single object, possibly using one of the available compositing operations. An example of a group can be found in the PDF specification (Adobe Systems, Inc.). According to the PDF specification, objects are often grouped to create specific visual (transparency) effects and so that the objects within the group can be composited together and the result can then be composited with the background. Such groups are often referred to as transparency groups.
A common method used to process graphical objects is to convert them into an intermediate format made up of non-overlapping regions or sub-objects. An important technique when creating such an intermediate format is detecting when an overlying object obscures one or more other objects, in order to avoid producing redundant drawing instructions for the occluded objects. Determining whether a graphical object obscures objects in the background of the graphical object is generally a simple process. However, this determination can be complicated if the particular object is contained within a group, as the obscurance properties of the particular object may rely on later (overlying) objects within the relevant group. For example, a masking object forming part of the group may partially overly the particular object, thereby presenting the background of the group for representation, perhaps through compositing with further overlying objects.
An optimisation to the technique of producing an intermediate format is to partition the graphical objects into multiple z-ordered batches or bands of objects, and generate an intermediate format representation of each batch. Once all batches have been processed, the set of intermediate format representations can be merged into a final intermediate format representation. However when objects are partitioned into z-ordered batches, it can be difficult to determine efficiently whether an object obscures the background, as the obscurance properties of the object may depend on other objects lying in a separate batch.
It is therefore desirable to provide a means to efficiently determine the obscurance properties of objects contained within z-ordered partitions.